//第五天错题集
// 
//1.求输入1abcedf2df<回车>后的结果
#include <stdio.h>
int main()
{
	char ch;
	while ((ch = getchar()) != '\n')
	{
		//首先得判断ch的ASCII码值是否为奇数，并且处于a~z之间
		//其次，ch - 'a' + 'A',就相当于给ch - 32，即将小写字母转化为大写字母
		if (ch % 2 != 0 && (ch >= 'a' && ch <= 'z'))
			ch = ch - 'a' + 'A';
		putchar(ch);
	}
	printf("\n");
	return 0;
}

//2.数字在升序数组中出现的次数
int Getnumberdigit(int* nums, int numsLen, int k, int n)
{
    //二分查找
    int flag = 0;
    int result = 0;
    int Left = 0;
    int Right = numsLen - 1;
    int mid = 0;
    while (Left <= Right)
    {
        mid = (Right - Left) / 2 + Left;
        if (nums[mid] < k)
        {
            Left = mid + 1;
        }
        else if (nums[mid] > k)
        {
            Right = mid - 1;
        }
        else
        {
            result = mid;
            flag = 1;
            //向左寻找，找到k第一次出现的地方
            if (n == 0)
            {
                Right = mid - 1;
            }
            //向右寻找，找到k最后一次出现的位置
            else
            {
                Left = mid + 1;
            }
        }
    }

    if (flag == 1)
    {
        return result;
    }
    //如果没找到k，就返回-1
    else
    {
        return -1;
    }
}
//该函数用来寻找k第一次出现和最后一次出现的位置，并返回最终的结果
int GetNumberOfK(int* nums, int numsLen, int k)
{
    //k第一次出现的位置,0表示向左寻找
    int left = Getnumberdigit(nums, numsLen, k, 0);
    //k最后一次出现的位置，1表示向右寻找
    int right = Getnumberdigit(nums, numsLen, k, 1);
    //如果返回两次-1，就说明该数组无此数
    if (left == -1 && right == -1)
    {
        return 0;
    }
    else
    {
        return right - left + 1;
    }
}